11.NDP协议分析与实践 您所在的位置:网站首页 报文 格式 11.NDP协议分析与实践

11.NDP协议分析与实践

2023-08-17 21:11| 来源: 网络整理| 查看: 265

4.IPv4协议分析与实践

百里奔跑: EINVAL 是系统头文件定义的 [code=csharp] // common.h #ifndef __common_h_ #define __common_h_ #include #include #include #define handle_error_en(en, msg) \ do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0) #define handle_error(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) #endif /* __common_h_ */ [/code]

4.IPv4协议分析与实践

Suzhanyu_4068: 用make指令运行还是编译出了一些错误,我想加上common.h头文件再试试,麻烦博主帮一下啦!

4.IPv4协议分析与实践

Suzhanyu_4068: 谢谢博主!但是我注释掉common.h之后提示了参数EINVAL未定义,在IPv4的错误处理函数中使用,猜测是在这个头文件中定义了。。

4.IPv4协议分析与实践

百里奔跑: 对,在 Linux 运行,common.h 没什么东西,只有简单处理错误宏, cksum.h 内容 ```c uint16_t cksum(uint16_t *addr, int len) { int left = len; uint32_t sum = 0; uint16_t *w = addr; uint16_t check_sum = 0; // 以 2 字节为单位累加 while (left > 1) { sum += *w++; left -= 2; } // 为奇数字节时, 转换最后一个字节, 继续累加 if (left == 1) { *(unsigned char *) (&check_sum) = *(unsigned char *) w; sum += check_sum; } sum = (sum >> 16) + (sum & 0xFFFF); sum += (sum >> 16); check_sum = ~sum; // 取反得到校验和 return check_sum; } ```

4.IPv4协议分析与实践

Suzhanyu_4068: 博主你好!虚心求教,请问是运行在Linux上的吗?cksum.h和common.h这两个头文件也是系统自带的嘛



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有